es6 forEach/map循环中断 | 您所在的位置:网站首页 › js 跳过此次循环 › es6 forEach/map循环中断 |
1.for循环在循环的时候 通过continue中断当次循环 通过break中断整个循环 通过retrun中断函数执行 2.es6的forEach/map循环只能通过return中断当次循环 //目的:数据匹配到了就中断循环 //结果:所有循环都执行了 let data = [1,2,3,4,5,6] data.forEach((val,index,arr)=>{ console.log(`当前第${index+1}循环执行了`) if(val>3){ //模仿真实场景条件匹配成功条件 return } console.log('val', val) })3.解决forEach无法中断循环:抛出异常 try{ let data = [1,2,3,4,5,6] data.forEach((val,index,arr)=>{ console.log(`当前第${index+1}循环执行了`) if(val>3){ //模仿真实场景条件匹配成功条件 throw new Error(); } console.log('val', val) }) }catch(e) { } console.log("继续执行")4.思考:抛出错误这种写法不好,当遇到需要终止循环的时候,不应该使用forEach/map;可以使用js的for/for in等;或是es6针对数组的其他方法: Array.prototype.every()Array.prototype.some()Array.prototype.find()Array.prototype.findIndex()以上方法返回truthy值以确定是否需要进一步的迭代 //1.every:一假即假,true则继续循环,false就不执行循环了 let data = [1,2,3,4,5,6] data.every((val,index,arr)=>{ console.log(val) return val{ console.log(val) return val>3 }) //结果:1 2 3 4, 并return true //3.find: 找到就返回该值并退出循环 let data = [1,2,3,4,5,6] data.find((val,index,arr)=>{ console.log(val) return val>3 }) //结果:1 2 3 4, 并return 45.参考 |
CopyRight 2018-2019 实验室设备网 版权所有 |